package java0831;

import java0829.UdpEchoServer;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UdpDictServer {
    private DatagramSocket socket = null;
    public UdpDictServer(int port) throws SocketException {
        socket = new DatagramSocket(port);

        //对hash表的值进行初始化
        //此处这个表的数据可以非常多
        dict.put("hello","你好");
        dict.put("cat","小猫");
        dict.put("dog","小狗");

    }

    private String process(String request){
        //根据请求计算响应
        //例如用户的请求是”hello“，就应该返回一个”你好"
        //这个逻辑的实现，核心就是“查表”
        //像有道这样的专业词典，应该是把数据放到数据库中
        //这里的查表就是查数据库的表
        //此处使用getDefault来查。如果是get的话，key不存在，就返回null
        //此处期望返回的不是null，而是给客户端一个提示

        return dict.getOr;
    }

    public void start() throws IOException {
        System.out.println("服务器启动！");
        while (true){
            //1、读取请求并解析
            DatagramPacket requesPacket = new DatagramPacket(new byte[4096],4096);
            socket.receive(requesPacket);
            String request = new String(requesPacket.getData(),0,requesPacket.getLength());
            //2、根据请求并计算响应
            String response = process(request);
            //3、
        }
    }
}
